home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 16 Vendor Support / SMEETS.CNF < prev    next >
Text File  |  2019-04-13  |  22KB  |  786 lines

  1. On December 13, 1987, Chris Smeets was the guest at a formal COnference.
  2. Chris is the author of the ARC utility for the 64.  Here is the transcript
  3. of that CO.
  4.  
  5. Job   User ID   Nod Ch Tlk Handle
  6. --- ----------- --- -- --- ------------
  7.  29 76703,4032  NYJ 30     Wayne/Moderator
  8.  54 76526,711   BUT 30     Ray Bowman
  9.  65 71340,27    DCI 30     Alexander Schneider
  10. 118 76703,4037  SEA 30     Sysop/Betty
  11. 125 76703,3051  GNC 30     Sysop Jake
  12. 144 70007,2376  TTO 30     Chris Smeets
  13.  
  14. (Wayne/Moderator)
  15. The FORMAL conference with the programmer extraodinaire, Chris Smeets, begins
  16. Welcome, Chris. We would first like to thank you for offering to share this...
  17. evening with us and, of course, ...
  18. your wonderful ARChive utility implementation for the 64. Welcome.
  19.  
  20. (Chris Smeets)
  21. Thank-you
  22.  
  23. (Alexander Schneider)
  24. Do the ! and ? rules apply?
  25.  
  26. (Wayne/Moderator)
  27. The procedure for asking questions or comments is as Alex has indicated...
  28. ? will put you in the queue for a question, ! for a comment....
  29. You will be also given follow-up opportunity if time permits.
  30. Chris, could you give us a little background,...
  31. first, about yourself and your computing history...
  32.  
  33. (Chris Smeets)
  34. OK
  35.  
  36. (Wayne/Moderator)
  37. and then a bit about your efforts in implementing ARChive on the 64?
  38.  
  39. (Chris Smeets)
  40. I started out with a 32K PET back in about 1975.
  41. In those days, if you wanted something you had to write it yourself.
  42. So I taught myself to program, first in BASIC, and later 6502 assembler.
  43. I was attending university and building my plating business up of and on
  44. and managed to get a good command of the PET over the next few years. 
  45. I first picked up a 64 about 3 years ago, and only recently picked up my
  46. C-128 when the 64 broke down.
  47. My first intro to the IBM was about 18 or so months ago when we picked one
  48. up for the business. It didn't take long to get a modem, and it was 
  49. inevitable that I ran into ARC when downloading files from local boards.
  50. The idea of compressing files intrigued me, and I wanted to write my own
  51. ARC utility so that I could once and for all organize that mountain of
  52. disks I had managed to accumulate over the years.
  53.  
  54. (Alexander Schneider) ?
  55.  
  56. (Wayne/Moderator) Alex, ga
  57.  
  58. (Alexander Schneider)
  59. Chris, where did you get the algorithms?
  60.  
  61. (Chris Smeets)
  62. From the articles which appear as footnotes in the ARC docs.
  63.  
  64. (Ray Bowman) ?
  65.  
  66. (Wayne/Moderator) Follow-up, Alex?
  67.  
  68. (Alexander Schneider) Yes...
  69. Do you know who originally wrote ARC and came up with the algorithms?
  70.  
  71. (Sysop Jake) !
  72.  
  73. (Wayne/Moderator) just a moment..
  74.  
  75. 10:31:32 PM EST Saturday, December 13, 1986
  76. Job   User ID   Nod Ch Tlk Handle
  77. --- ----------- --- -- --- ------------
  78.  29 76703,4032  NYJ 30  *  Wayne/Moderator
  79.  54 76526,711   BUT 30     Ray Bowman
  80.  65 71340,27    DCI 30     Alexander Schneider
  81. 118 76703,4037  SEA 30     Sysop/Betty
  82. 125 76703,3051  GNC 30     Sysop Jake
  83. 144 70007,2376  TTO 30  *  Chris Smeets
  84.  
  85. (Sysop Jake)
  86. Wayne and Chris appear to be talking.
  87.  
  88. (Sysop/Betty)
  89. Jake, ga with your comment, please.
  90.  
  91. (Sysop Jake)
  92. I was going to say to Alex that...
  93. compression algorithms are studied by computer scientists.
  94. I don't think one person invented all the algorithms. ga
  95.  
  96. (Wayne/Moderator)
  97. just a moment
  98. Chris got into Chat by mistake
  99.  
  100. (Chris Smeets)
  101. I just wanted to know how to indicate how I'm done a response.
  102.  
  103. (Wayne/Moderator)
  104. Just add 'ga.' (go ahead)
  105.  
  106. (Alexander Schneider) Oh
  107.  
  108. (Wayne/Moderator)
  109. Chris, could you add what was not visible for a few lines...
  110.  
  111. (Chris Smeets)
  112. Huffman developed the algorithm.
  113.  
  114. (Wayne/Moderator)
  115. about the source, etc.
  116.  
  117. (Chris Smeets)
  118. To squeeze files, but the idea of representing a binary file as a tree
  119. existed before him.
  120. If you ever try to figure out for yourself how to generate such a tree
  121. you'll realize just how difficult a task this is. Huffman made it easy! ga
  122.  
  123. (Wayne/Moderator) Ok, Ray. Ga
  124.  
  125. (Ray Bowman)
  126. Chris, what do you find the most common uses of ARC are? ga
  127.  
  128. (Chris Smeets)
  129. File transfers via modem are of course number one.
  130. It is really an advantage because of filenaming problems encountered
  131. when storing Commodore files on IBM PCs or places like CIS.
  132. It also a handy way to file away mutiple copies of backup material.
  133. Especially if you have a high capacity drive like an SFD 1001.  
  134. I also get alot of people complimenting me on how useful it is as a general
  135. file manipulation tool...(move etc)
  136. ga
  137.  
  138. (Wayne/Moderator) Follow-up, Ray?
  139.  
  140. (Ray Bowman)
  141. Does ARC have a printer preference in the PP/P function? ga
  142.  
  143. (Chris Smeets)
  144. I made a mistake on that in the docs.
  145. The pokes I give to change the printer device and secondary address
  146. should be increased by 1024. (ie $08xx not $04xx)
  147. It's set up for device 4 sa=0 most people need sa=7
  148. I only put that in on the last minute, and will be improving on printer
  149. support quite a bit in future ARCs. (/pp/p is too many p's and looks stupid)
  150. ga
  151.  
  152. (Wayne/Moderator)
  153. I find it the most useful disk and file maintenance environment there is...
  154.  
  155. (Sysop/Betty)
  156. <smile>.
  157.  
  158. (Wayne/Moderator)
  159. I have a question about the date function...
  160. is there any chance that a disposable routine, upon booting...
  161. which would install the current date and 'disappear'. Could that be written?
  162. It is a feature...
  163. which seems not to be used often but of real value. ga
  164.  
  165. (Chris Smeets)
  166. The actual date routine is rather short. About 128 bytes or so.
  167. I like to change the date to reflect what it is I'm archiving so I'll
  168. probably leave it in there.
  169.  
  170. (Wayne/Moderator)
  171. I meant that I like it...
  172.  
  173. (Chris Smeets)
  174. I do plan to have a number of disposable routines though.
  175.  
  176. (Wayne/Moderator)
  177. but I forget to poke before I boot up
  178.  
  179. (Chris Smeets)
  180. That setup things like number of drives, drive types etc.
  181.  
  182. (Wayne/Moderator)
  183. Questions?
  184.  
  185. (Ray Bowman) ?
  186.  
  187. (Wayne/Moderator) Ray, ga
  188.  
  189. (Ray Bowman)
  190. Chris, doesn't the letter names for the drives cover that now? ga
  191.  
  192. (Chris Smeets)
  193. Yes, but I want to implement some fast serial routines, and they will
  194. have to know what type of drive they are dealing with.
  195.  
  196. (Alexander Schneider) !
  197.  
  198. (Chris Smeets)
  199. If no 1541 is detected at bootup, then the serial routines will never
  200. be installed in the first place.
  201. ga
  202.  
  203. 10:49:37 PM EST Saturday, December 13, 1986
  204. Job   User ID   Nod Ch Tlk Handle
  205. --- ----------- --- -- --- ------------
  206.  29 76703,4032  NYJ 30     Wayne/Moderator
  207.  54 76526,711   BUT 30     Ray Bowman
  208.  65 71340,27    DCI 30     Alexander Schneider
  209. 118 76703,4037  SEA 30     Sysop/Betty
  210. 125 76703,3051  GNC 30     Sysop Jake
  211. 144 70007,2376  TTO 30     Chris Smeets
  212.  
  213. (Wayne/Moderator)
  214. Ray, follow-up
  215.  
  216. (Ray Bowman)
  217. Question answered. Thanks. ga
  218.  
  219. (Wayne/Moderator) ga, Alex
  220.  
  221. (Alexander Schneider)
  222. Occasionally,I want to compress something when...
  223. I am near the end of a disk.
  224. It is a hassle to copy the files to another disk and then arc them.
  225. Would it be possible to have the user swap disks so the archive...
  226. could be on a seperate disk? ga
  227.  
  228. (Chris Smeets)
  229. That's a tricky one!
  230. I would have to buffer the output through RAM, and ARC uses all except about
  231. 4K of what the 64 has got. That would be one heck of alot of disk swaps!
  232. I am trying to think of some better way to get around this.
  233.  
  234. (Wayne/Moderator) Follow, Alex?
  235.  
  236. (Alexander Schneider) No
  237.  
  238. (Sysop Jake) !
  239.  
  240. (Alexander Schneider) ga
  241.  
  242. (Wayne/Moderator) Jake, ga
  243.  
  244. (Sysop Jake)
  245. The memory limitation of the 64 could be solved a couple of ways...
  246. Commodore is coming out with a memory expander for the 64 (up to 512K)...
  247. Also, if you wrote a new version for the 128, you'd have 64K more buffer space...
  248. or (this is for Alex), you could get a second drive.  ga
  249.  
  250. (Ray Bowman) ?
  251.  
  252. (Alexander Schneider) !
  253.  
  254. (Wayne/Moderator)
  255. Chris, I have a question along the same line...
  256.  
  257. (Chris Smeets)
  258. I picked up a 1750 RAM expander the other day.
  259. And do plan to support it later on.
  260.  
  261. (Wayne/Moderator)
  262. Would it be possible, for single drive de-ARCing...
  263. to possibly interrupt the process...
  264. and move a 'pointer' ahead within the ARC file...
  265. so that more space might be freed up?
  266. (Disposing of what has already been extracted)
  267. (assuming a copy of full ARC'd file exists elsewhere)
  268. ga
  269.  
  270. (Chris Smeets)
  271. You mean to both dissolve and scratch the archive at the same time?  Yes.
  272.  
  273. (Wayne/Moderator) yes
  274.  
  275. (Chris Smeets)
  276. I'll be working on it. ga
  277.  
  278. (Wayne/Moderator)
  279. Great. Alex, ga
  280.  
  281. (jason Pollack)
  282. Good evening. I am Jason Pollack.
  283.  
  284. (Alexander Schneider)
  285. Well,I don't think a new drive would be worthwhile...
  286. because I'm planning to upgrade soon.
  287.  
  288. (Wayne/Moderator)
  289. Ray, you had a question?
  290.  
  291. (Alexander Schneider)
  292. DO you have ARCs for 16 bit machines?
  293. ga
  294.  
  295. (Sysop Jake) !
  296.  
  297. (Chris Smeets)
  298. No my ARC program is written in 6502 assembler.
  299.  
  300. (Sysop/Betty)
  301. Good Evening, Jason.
  302.  
  303. (Ray Bowman)
  304. Would creating several small arc files at the end of a disk...
  305. and then appending these files help? ga
  306.  
  307. (Alexander Schneider)
  308. I must go now.
  309.  
  310. (Wayne/Moderator)
  311. Thank you for coming, Alex. Welcome, Jason
  312.  
  313. (Chris Smeets)
  314. I don't follow your question.
  315.  
  316. (Ray Bowman)
  317. This was in reference to running out of disk space for an arc file. ga
  318.  
  319. (Chris Smeets)
  320. OK...well that would be sort of like scratching the files one at a time
  321. after they've been included in the archive.
  322. I was planning to do that soon.
  323. ga
  324.  
  325. (Wayne/Moderator) Jake
  326.  
  327. (Sysop Jake)
  328. My comment was an answer to Alex, who may be gone now...
  329. For 16-bit machines, there's an ARC for the Mac and the ST...
  330. and I'm pretty sure there's one for the Amiga, too.  ga
  331.  
  332. (Wayne/Moderator) Yes, Jake, there is
  333.  
  334. (Sysop/Betty) ?
  335.  
  336. (Wayne/Moderator) Betty
  337.  
  338. (Sysop/Betty)
  339. Chris, occasionally I have a problem with an ARChived file which contains...
  340. many files but which are very small...
  341. example, some of current CAD files...
  342. I don't know if it's my 1571, or the diskette itself...
  343.  
  344. (Ray Bowman) !
  345.  
  346. (Sysop/Betty)
  347. but it will hang on say the 31st file...
  348. I'll reboot and after an ARC/L extract
  349. the balance individually....
  350. Is there any limit to the number of ARC files within the ARChive?  ga
  351.  
  352. (Chris Smeets)
  353. The problem doesn't sound familiar.
  354. But no, there is no limit on the number of files in an archive.
  355.  
  356. (Wayne/Moderator) Betty, more?
  357.  
  358. (Sysop/Betty)
  359. Thank you Chris, like I said, it doesn't happen everytime...
  360.  
  361. (Chris Smeets)
  362. So far I use only standard kernel routines to access the drives.
  363.  
  364. (Sysop/Betty)
  365. so perhaps it's the drive.  ga
  366.  
  367. (Wayne/Moderator) ga, Ray
  368.  
  369. (Ray Bowman)
  370. I have found this to sometimes be a problem when creating an ARC file...
  371. especially on a disk where I have  scratched and validated a lot. ga
  372.  
  373. (Wayne/Moderator)
  374. Betty...
  375. I've found that effect on both the 1541 and the Indus...
  376.  
  377. (Ray Bowman) !
  378.  
  379. (Wayne/Moderator)
  380. and it occurs in other programs ...
  381. I think it is a serial and DOS bug...
  382. where the drive just hangs...
  383. and 'forgets' what it was doing...
  384. It is hard to reproduce but happens enough to suspect a slight DOS bug....
  385. I think sometimes just a mechanical reset (bump) is needed. ga Ray
  386.  
  387. (Chris Smeets)
  388. I do 99% of my work on a 4040, and have very little problems.
  389. But I'll be tackling those wonderful serial drives in the months ahead.
  390.  
  391. (Wayne/Moderator)
  392. 4040 has MUCH better mechanics.
  393.  
  394. (Ray Bowman) !
  395.  
  396. (Chris Smeets) And less bugs.
  397.  
  398. (Wayne/Moderator) Ray, ga
  399.  
  400. (Ray Bowman)
  401. ARC sure doesn't like FASTLOAD either. ga
  402.  
  403. (Chris Smeets)
  404. FASTLOAD...I think thats my fault!
  405.  
  406. (Wayne/Moderator)
  407. That is a DOS support/CHRGET conflict, I believe, Ray
  408.  
  409. 11:17:09 PM EST Saturday, December 13, 1986
  410. Job   User ID   Nod Ch Tlk Handle
  411. --- ----------- --- -- --- ------------
  412.  29 76703,4032  NYJ 30     Wayne/Moderator
  413.  54 76526,711   BUT 30     Ray Bowman
  414. 118 76703,4037  SEA 30     Sysop/Betty
  415. 125 76703,3051  GNC 30     Sysop Jake
  416. 144 70007,2376  TTO 30     Chris Smeets
  417.  
  418. (Chris Smeets)
  419. I think I can get it going rather easily, all I need is a fastload
  420. cartridge to try it out on.
  421.  
  422. (Wayne/Moderator)
  423. It works great with 1541 Flash
  424. ga
  425.  
  426. (Chris Smeets)
  427. I think the problem is in how I handle the load and save vectors.
  428. I should save the previous contents (fastload) and then when ARC
  429. is done it should jump to the fastload cartridge. Instead I jump into the
  430. kernel ROMS. ga
  431.  
  432. (Wayne/Moderator)
  433. Fastload has FAR more bugs than ARC
  434. Questions?
  435.  
  436. (Sysop/Betty) !
  437.  
  438. (Wayne/Moderator) Betty, ga
  439.  
  440. (Sysop/Betty)
  441. You know when Ray mentioned a diskette that a lot of scratches and Wayne...
  442. mention about a possible DOS bug I remembers that nearly 4 years ago I...
  443. proved to myself there was such a DOS bug because if started re-formatting...
  444. diskettes that were work disks rather than continually scratching...
  445. I got good results.  So I think it is a DOS bug and really not ARC...
  446.  
  447. (Ray Bowman) !
  448.  
  449. (Sysop/Betty)
  450. Chris I didn't mean to imply it was.   ga
  451.  
  452. (Wayne/Moderator) Ray
  453.  
  454. (Ray Bowman)
  455. I believe Betty's right because once I had a disk reformatted under these...
  456. conditions and got 1570 bloks free on a 664 K disk...
  457. Thoroughly corrupted the disk. ga
  458.  
  459. (Sysop/Betty) !
  460.  
  461. (Wayne/Moderator) Betty, ga
  462.  
  463. (Sysop/Betty)
  464. In other words, the "formatting" wears out or goes away or gets tired...
  465. and needs redone.  ga
  466.  
  467. (Ray Bowman) !
  468.  
  469. (Wayne/Moderator)
  470. Chris, I must say I am amazed at the dynamic intelligence you've built into ARC
  471. I am able to process a full disk of many files with single pass crunch...
  472. ..That's weird...
  473.  
  474. (Chris Smeets)
  475. I think you can thank MICROSOFT for that.
  476.  
  477. (Sysop/Betty)
  478. Hello!  Is the System slow?
  479.  
  480. (Wayne/Moderator)
  481. I just got bumped and got back on in time to get my last line
  482. I missed your last line, Chris
  483.  
  484. (Chris Smeets)
  485. I just cloned the syntax for the IBM version which IS EXTREMELY flexible.
  486.  
  487. (Wayne/Moderator)
  488. I was about to say...
  489.  
  490. (Chris Smeets)
  491. I was saying, that although ARCs syntax might be a bit (or alot) awkward
  492.  
  493. (Wayne/Moderator)
  494. in LESS time than all but the new SuperKit dual file copy...
  495.  
  496. (Chris Smeets)
  497. For the average commodore user, it is typical for an MS-DOS program.
  498.  
  499. (Wayne/Moderator)
  500. Less time than a straight 2-drive Copy-All of all files. ga
  501.  
  502. (Chris Smeets)
  503. All I did was take a lesson from the experts!
  504.  
  505. 11:30:14 PM EST Saturday, December 13, 1986
  506. Job   User ID   Nod Ch Tlk Handle
  507. --- ----------- --- -- --- ------------
  508.  54 76526,711   BUT 30     Ray Bowman
  509. 118 76703,4037  SEA 30     Sysop/Betty
  510. 125 76703,3051  GNC 30     Sysop Jake
  511. 140 76703,4032  NYJ 30     Wayne/Moderator
  512. 144 70007,2376  TTO 30     Chris Smeets
  513.  
  514. (Wayne/Moderator)
  515. Great work. I certainly appreciate that you've brought us such a professional...
  516. utility. ga
  517.  
  518. (Sysop/Betty)
  519. I think Ray has a comment.
  520.  
  521. (Wayne/Moderator) Ray, ga
  522.  
  523. (Ray Bowman)
  524. Pass. Thanks. ga
  525.  
  526. (Wayne/Moderator)
  527. Questions?
  528.  
  529. (Ray Bowman) ?
  530.  
  531. (Sysop Jake) ?
  532.  
  533. (Wayne/Moderator) Ray
  534.  
  535. (Ray Bowman)
  536. Chris, what's coming down the line for the users? ga
  537.  
  538. (Sysop/Betty) ?
  539.  
  540. (Chris Smeets)
  541. Quite alot actually
  542. I plan to write my own KERNEL of routines, so that ARC will boot up as
  543. a basically empty shell. You will then load in the commands (arc, move etc)
  544. one at a time as you need them. Once this kernel is written, I have a whole lot
  545. of external functions planned.
  546. I hope to be able to extract MS-DOS archives, unsqueeze CP/M squeezed files
  547. and a lot of other file manipulation utilities. Filters of various sorts,
  548. and possibly a disk nibbler that outputs to an archive.
  549.  
  550. (Wayne/Moderator)
  551. Amazing. Jake, ga.
  552.  
  553. (Chris Smeets)
  554. There are a lot of things I have planned. I want to take my time
  555. and write this kernel properly because it will determine how easy
  556. the utilities which follow are to write.
  557. ga
  558.  
  559. (Sysop Jake) 
  560. I have two questions...
  561. The first is an old argument.  Assembly language programmers like to yell...
  562. about which assembler is best...
  563.  
  564. (Ray Bowman) !
  565.  
  566. (Sysop Jake)
  567. Which assembler do you use and did you just sort of fall into it...
  568. or have you tested other assemblers and you picked the best one?...
  569. Also, will your Kernel routines be relocatable?...
  570. I mean are you going to avoid all JMPs and JSRs? ga
  571.  
  572. (Chris Smeets)
  573. I use an assembler which I have written myself
  574. It's not too fancy...no macros and such, but uses seq files as input
  575. and is fairly simple to use. I like well commented source code and tend
  576. to shy away from assemblers which use the basic interpreter as an editor
  577. since things don't format nicely that way.
  578. As for the kernel...
  579. It will be implemented sort of like MS-DOS function interrrupts. All calls
  580. will be through ($0314), and the code can reside anywhere. The external
  581. funxctions will be relocatable (like USQ) and will access the kernel through
  582. $0314. It should be possible to write one utility for several different
  583. machines this way.   ga
  584.  
  585. (Wayne/Moderator) Follow up, Jake?
  586.  
  587. (Sysop Jake)
  588. It surprised me at first that you wrote your own...
  589. assembler, but then I remembered you were a PET programmer.  That explains it.
  590. hehe
  591. ga
  592.  
  593. (Wayne/Moderator) Betty
  594.  
  595. (Sysop/Betty)
  596. Well, tonight just before logging on I wanted to do a de-ARC and actually...
  597. forgot the  ARC/L  command and couldn't find my documentation in a hurry...
  598. so I entered  ARC/F  and got a display...
  599. what did I get?  ga
  600.  
  601. (Chris Smeets)
  602. ARC/F is used to strip XMODEM padding from the end of ...
  603. an archive. This isn't normally a problem, but can really screw ...
  604. things up if you try to append to an archive that has been padded.
  605. ga
  606.  
  607. (Wayne/Moderator) Betty?
  608.  
  609. (Sysop/Betty) Thanks, Chris.  ga
  610.  
  611. (Wayne/Moderator) ga, Ray
  612.  
  613. 11:47:35 PM EST Saturday, December 13, 1986
  614. Job   User ID   Nod Ch Tlk Handle
  615. --- ----------- --- -- --- ------------
  616.  54 76526,711   BUT 30     Ray Bowman
  617. 118 76703,4037  SEA 30     Sysop/Betty
  618. 125 76703,3051  GNC 30     Sysop Jake
  619. 140 76703,4032  NYJ 30     Wayne/Moderator
  620. 144 70007,2376  TTO 30     Chris Smeets
  621.  
  622. (Ray Bowman)
  623. Have to sign off so I would like to thank Chris for the opportunity...
  624. to meet you and talk with you. ...
  625. THANKS M!
  626.  
  627. (Doug Gurfein)
  628. hello all
  629.  
  630. (Chris Smeets)
  631. ok Ray... hope to meet and chat again sometime.
  632.  
  633. (Wayne/Moderator)
  634. Thank you, Ray, for attending and your questions.
  635.  
  636. (Sysop Jake)
  637. Hi Doug
  638.  
  639. (Wayne/Moderator)
  640. Welcome, Doug
  641.  
  642. (Sysop/Betty)
  643. Hello Doug.
  644.  
  645. (Sysop Jake) ?
  646.  
  647. (Wayne/Moderator)
  648. Any questions for Chris 'The Great' Smeets, author of ARC (64), Doug?
  649. Jake, ga
  650.  
  651. (Chris Smeets)
  652. blush
  653.  
  654. (Sysop/Betty)
  655. It's true, Chris.
  656.  
  657. (Sysop Jake)
  658. Chris: How difficult is the compress/de-compress routine...
  659. how many bytes of assembly language...
  660. and can you cover it in a paragraph here?...
  661. If not, where are the details? ga
  662.  
  663. (Chris Smeets)
  664. All of the ARC/UNARC routines reside between about
  665. $A000-$B800, so thats about 6K. Not bad since the
  666. IBM version takes over 32K to do basically the same thing!
  667. I could probably go to town and get it down even smaller.
  668. My algorithm has a fault in that it requires alot of workspace to
  669. crunch files (12k+16k) when 12k are all that is really needed.
  670. The CRunch routines are the most difficult.
  671. Squeezing next, and packing and storing are simple.
  672. Probably the most complicated aspect of it is trying to keep
  673. track of what I'm doing since there are actually 3 passes...
  674. analyze pack then compress,
  675. with the pack and compress done simultaneously.
  676. ga
  677.  
  678. (Wayne/Moderator) Jake, follow-up?
  679.  
  680. (Sysop Jake)
  681. I've read a little about Huffman encoding...
  682. the basic idea is to look for the most common characters/bytes...
  683. and then give them a smaller number of bits, right?...
  684. The letter E might have 5 bits, versus 9 or 10 for the letter Q. ga
  685.  
  686. (Chris Smeets)
  687. yes. That's basically it, the length of the code is dependent
  688. on how often the byte occurs in the file.
  689. The ones that occur most often have short codes, and the ones
  690. that occur least often have longer ones.
  691.  
  692. (Sysop Jake)
  693. Is the frequency table transmitted with the file?
  694.  
  695. (Chris Smeets)
  696. No...the codes are represented as a binary tree, and the tree is
  697. passed along as a header in the squeezed file.
  698. ga
  699.  
  700. (Sysop Jake) ?
  701.  
  702. (Wayne/Moderator)
  703. Chris, could you describe how the single pass crunch works?
  704.  
  705. (Chris Smeets)
  706. That's not so easy, but I'll try....
  707. Actually CRUNCHING is by nature done in only one pass.
  708. The only reason I use two is so that I can compare the crunched length
  709. with the squeezed length, and so decide upon the best storage method.
  710. A crude analogy would be BASIC programs, which are tokenized.
  711. The tokens can be expanded into keywords which are much longer than the tokens.
  712. The difference is that ARC reads the file sequentially, and builds the
  713. "string table" dynamically as it goes through the file. This way only
  714. sequences which actually occur in the file need occur in the string table.
  715. The present algorithm, as described by Terry Welch in IEEE Computer is
  716. by no means the best one. No attempt is made to optimize the strings which
  717. should or should not be included in the table. You can probably expect to
  718. see some improved crunch algorithms in the future.
  719. I have even heard one guy say he could crunch many files down to a single
  720. byte!  (I'll have to see it to believe it though)
  721. ga
  722.  
  723. (Wayne/Moderator)
  724. I used to use the amazing optimizing ARChiving but find the Crunch loses only
  725. 5% or less with MUCH time savings. Ga, Jake
  726.  
  727. (Sysop Jake)
  728. I wanted to ask about graphics files.  There's a way of crunching/compressing...
  729. where you look for repeating patterns.  Run Length Encoding it's called...
  730. where CHR$(50) CHR$(0) CHR$(150) CHR$(255) would mean 50 0's, then 150 255's...
  731. does ARC do any of this? ga
  732.  
  733. (Chris Smeets)
  734. YES. I call it packing.
  735. Crunched and squashed files are both packed before being processed by the
  736. crunch or squeeze algorithms. Sometimes packed files grow, so squeezing is
  737. sometimes more efficient than squashing.
  738. ga
  739.  
  740. (Sysop Jake)
  741. I know it doesn't work for text files.
  742. But it's great for graphics screens where bytes or bits are repeated. ga
  743.  
  744. (Wayne/Moderator)
  745. Any final questions? It's after midnite EST and Chris has given us an ...
  746.  
  747. (Sysop Jake) Nope.
  748.  
  749. (Wayne/Moderator)
  750. excellent and informative appearance. ga
  751.  
  752. (Wayne/Moderator) Betty?
  753.  
  754. (Sysop/Betty) !
  755.  
  756. (Wayne/Moderator) ga
  757.  
  758. (Sysop/Betty)
  759. Chris, I want to thank you for being our Guest here for an excellent COnference...
  760. and the Transcript will be available in DL 1 for all our Members and enjoy...
  761. All my thanks for sharing your ARC program and utilities with CBMART. ...
  762. And Wayne, thanks for an excellent job of Moderating.   ga
  763.  
  764. (Chris Smeets)
  765. Thank-you for inviting me. I enjoyed myself.
  766.  
  767. (Wayne/Moderator)
  768. Your CO will be much promoted, Chris....
  769. and will be a lasting contribution, along side your wonderful work...
  770. I want to personally thank you for the high value you have invested in...
  771. producing such an effective and reliable utility of so much benefit...
  772. Your Conference was a great success. Thank you.
  773.  
  774. (Sysop/Betty) ?
  775.  
  776. (Wayne/Moderator) Betty
  777.  
  778. (Sysop/Betty)
  779. Chris, is there an ARC230 Version?  ga
  780.  
  781. (Chris Smeets)
  782. Yes, I'll post it later on tonight.
  783.  
  784.  
  785.  
  786.